  // https://www.npmjs.com/package/flyio
	// 浏览器和React Native
	// var Fly= require("flyio/dist/npm/fly")
	import fly from 'flyio';
	fly.config.timeout=100000;
	//设置请求基地址
	fly.config.baseURL="http://192.168.2.135:5173/"
	//设置公共的Get参数
	// fly.config.params= {"token":"testtoken"};
  
	
	// {
	//   baseURL,  //请求的基地址
	//   body, //请求的参数
	//   headers, //自定义的请求头
	//   method, // 请求方法
	//   timeout, //本次请求的超时时间
	//   url, // 本次请求的地址
	//   params, //url get参数(post请求或默认的get参数)    
	//   withCredentials, //跨域请求是否发送第三方cookie
	//   ... //options中自定义的属性
	// }
	
	const get = (url, params = {}) => {
		return new Promise((resolve, reject)=> {
			fly.get(url, params).then(res=> {
				resolve(res.data);
			}).catch(err=> {
				reject(err);
			});
		})
	}
	
	const post = (url, data= {}, config={}) => {
		return new Promise((resolve, reject)=> {
			fly.post(url, data, config)
			.then(res=> {
				resolve(res.data);
			}).catch(err=> {
				reject(err);
			});
		})
	}
	
	//添加请求拦截器
	fly.interceptors.request.use((request)=>{
			// 给所有请求添加自定义header，带上token信息让服务器验证用户登陆
			let token = uni.getStorageSync('driverToken') || '';
			request.headers['Authorization'] = token;
			// 在当前页面显示导航条加载动画
			uni.showLoading({
				title: '加载中'
			});
	    //给所有请求添加自定义header
	    request.headers["X-Tag"]="flyio";
	  	//打印出请求体
	  	console.log(request.headers)
	  	//终止请求
	  	//var err=new Error("xxx")
	  	//err.request=request
	  	//return Promise.reject(new Error(""))
	  
	    //可以显式返回request, 也可以不返回，没有返回值时拦截器中默认返回request
	    return request;
	})
	 
	//添加响应拦截器，响应拦截器会在then/catch处理之前执行
	fly.interceptors.response.use(
	    (response) => {
				uni.hideLoading();
				// console.error(response, '响应')
	        //只将请求结果的data字段返回
	        // return response.data
					return response
	    },
	    (err) => {
				uni.hideLoading();
				if (err && err.response) {
					switch (err.response.status) {
						case 400:
							err.message = '请求错误'
							break
						case 401:
							err.message = '未授权，请登录'
							break
						case 403:
							err.message = null;
							
							break
						case 404:
							err.message = '请求地址不存在，请稍后再试'
							break
						case 408:
							err.message = '请求超时'
							break
						case 500:
							err.message = '服务器开小差，请稍后再试'
							break
						case 501:
							err.message = '服务未实现'
							break
						case 502:
							err.message = '网关错误'
							break
						case 503:
							err.message = '服务不可用'
							break
						case 504:
							err.message = '网关超时'
							break
						case 505:
							err.message = 'HTTP版本不受支持'
							break
						default:
					}
				}
				if (err.message) {
					uni.showToast({
						title: err.message,
						icon: 'none'
					});
					return Promise.reject("error");
				}
	        //发生网络错误后会走到这里
	      ;
				return Promise.reject("error")
	    }
	);
	const request = {
		get,
		post
	}
	
	export default request;